package com.come4loves.game.module.card.facade;

import java.util.Collection;
import java.util.List;

import com.come4loves.core.result.Result;
import com.come4loves.core.result.TResult;
import com.come4loves.game.module.card.model.CardGroupModel;
import com.come4loves.game.module.card.model.CardModel;
import com.come4loves.game.proto.CardProto.CardGroupOperationModel;

public interface CardGroupFacade {

	/**
	 * 检查卡牌组名称是否重复
	 * @param name
	 * @return
	 */
	Result renameCardGroup(long actorId, int groupId, String name);
	
	/**
	 * 
	 * @param actorId
	 * @param cards
	 * @return
	 */
	TResult<CardGroupModel> createNewCardGroup(long actorId, byte flag, String name, List<CardModel> cards);
	
	/**
	 * 
	 * @param actorId
	 * @param cards
	 * @return
	 */
	Result deleteCardGroup(long actorId, int groupId);
	
	/**
	 * 获取卡牌组列表
	 * @param actorId
	 * @return
	 */
	TResult<Collection<CardGroupModel>> getCardGroupList(long actorId);

	/**
	 * 修改优先度
	 * @param cardType
	 * @param cardId
	 * @return
	 */
	Result addOrDelCard2Group(long actorId, int groupId, List<CardGroupOperationModel> deleteCards,  List<CardGroupOperationModel> addCards);

	/**
	 * 牌组是否存在
	 * @param actorId
	 * @param groupId
	 * @return
	 */
	Result isCardGroupExist(long actorId, int groupId);
	
}
